class PassengerPresenter:
    """
    PassengerPresenter 类用于将乘客数据转换为字典形式，方便在不同层之间传递和展示。
    该类接收乘客数据和辅助数据，并提供一个方法将这些数据组合成字典格式。
    """
    def __init__(self, data, aid_data=None):
        """
        初始化 PassengerPresenter 实例。

        Args:
            data: 乘客数据对象，通常包含乘客的基本信息，如 id、账户、姓名等。
            aid_data (dict, optional): 辅助数据，默认为 None。可用于补充乘客数据中未包含的信息。
        """
        self.data = data
        self.aid_data = aid_data

    def as_dict(self):
        """
        将乘客数据和辅助数据转换为字典形式。

        Returns:
            dict: 包含乘客信息的字典，键包括 "id"、"account"、"name"、"idCardNo"、
                  "mobileNo"、"bankCardNo"、"state"、"memberType"，并合并辅助数据。
        """
        return {
            # 乘客的唯一标识符
            "id": self.data.id,
            # 乘客的账户信息
            "account": self.data.account,
            # 乘客的姓名
            "name": self.data.name,
            # 乘客的身份证号码
            "idCardNo": self.data.id_card_no,
            # 乘客的手机号码
            "mobileNo": self.data.mobile_no,
            # 乘客的银行卡号码
            "bankCardNo": self.data.bank_card_no,
            # 乘客的状态
            "state": self.data.state,
            # 乘客的会员类型
            "memberType": self.data.member_type
        } | self.aid_data if self.aid_data else {
            # 乘客的唯一标识符
            "id": self.data.id,
            # 乘客的账户信息
            "account": self.data.account,
            # 乘客的姓名
            "name": self.data.name,
            # 乘客的身份证号码
            "idCardNo": self.data.id_card_no,
            # 乘客的手机号码
            "mobileNo": self.data.mobile_no,
            # 乘客的银行卡号码
            "bankCardNo": self.data.bank_card_no,
            # 乘客的状态
            "state": self.data.state,
            # 乘客的会员类型
            "memberType": self.data.member_type
        }